home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 February / Gamestar_81_2006-02_dvd.iso / Red Shark / Common / UnitBase.script < prev    next >
Text File  |  2001-10-31  |  5KB  |  204 lines

  1. //-------------------------------------------------------------------
  2. //
  3. //  This code is copyright 2001 by G5 Software.
  4. //  Any unauthorized usage, either in part or in whole of this code
  5. //  is strictly prohibited. Violators WILL be prosecuted to the
  6. //  maximum extent allowed by law.
  7. //
  8. //-------------------------------------------------------------------
  9.  
  10. class CGroundUnit
  11. {
  12.   void InitializeModelAsStatic(
  13.       string _MeshClass
  14.     )
  15.   {
  16.     CreateComponent("Mesh", "StaticObject", _MeshClass);
  17.     SetCompoundObjectPositionable("Mesh");
  18.  
  19.     CreateComponent("GroundControl", "GroundControl");
  20.     SetComponentSlaveObject("GroundControl", "Mesh");
  21.  
  22.     CreateComponent("DustGenerator", "DustGenerator", "CGroundUnitDustGenerator");
  23.     SetComponentPositionable("DustGenerator", "Mesh");
  24.   }
  25.  
  26.   void InitializeModelAsAnimated(
  27.       string _MeshClass
  28.     )
  29.   {
  30.     CreateComponent("Mesh", "AnimatedObject", _MeshClass);
  31.     SetCompoundObjectPositionable("Mesh");
  32.  
  33.     CreateComponent("GroundControl", "GroundControl");
  34.     SetComponentSlaveObject("GroundControl", "Mesh");
  35.  
  36.     CreateComponent("DustGenerator", "DustGenerator", "CGroundUnitDustGenerator");
  37.     SetComponentPositionable("DustGenerator", "Mesh");
  38.   }
  39. }
  40.  
  41. class CFlyingUnit
  42. {
  43.   void InitializeModelAsStatic(
  44.       string _MeshClass
  45.     )
  46.   {
  47.     CreateComponent("Mesh", "StaticObject", _MeshClass);
  48.     SetCompoundObjectPositionable("Mesh");
  49.   }
  50.  
  51.   void InitializeModelAsAnimated(
  52.       string _MeshClass
  53.     )
  54.   {
  55.     CreateComponent("Mesh", "AnimatedObject", _MeshClass);
  56.     SetCompoundObjectPositionable("Mesh");
  57.   }
  58. }
  59.  
  60. class CBuilding
  61. {
  62.   void CBuilding()
  63.   {
  64.     Core_AddClassificator(CLASSIFICATOR_OBSTACLE);
  65.   }
  66.  
  67.   void InitializeModelAsStatic(
  68.       string _MeshClass
  69.     )
  70.   {
  71.     CreateComponent("Mesh", "StaticObject", _MeshClass);
  72.     SetCompoundObjectPositionable("Mesh");
  73.   }
  74.  
  75.   void InitializeModelAsAnimated(
  76.       string _MeshClass
  77.     )
  78.   {
  79.     CreateComponent("Mesh", "AnimatedObject", _MeshClass);
  80.     SetCompoundObjectPositionable("Mesh");
  81.   }
  82.  
  83.   void InitializeGroundControl()
  84.   {
  85.     CreateComponent("GroundControl", "GroundControl");
  86.     SetComponentSlaveObject("GroundControl", "Mesh");
  87.   }
  88. }
  89.  
  90. class CCameraCollisionControl
  91. {
  92.   float CollisionRadius = 10.0f;
  93. }
  94.  
  95. class CUnitWithCamera
  96. {
  97.   void InitializeCamera(
  98.       string _CamLink
  99.     )
  100.   {
  101.     CreateComponent("Camera", "Camera", "CFullScreenCamera");
  102.  
  103.     CreateComponent("CamLink", "ObjectCameraLink", _CamLink);
  104.     SetComponentSlaveObject("CamLink", "Camera");
  105.     SetComponentPositionable("CamLink", "Mesh");
  106.  
  107.     CreateComponent("CameraCollision", "CameraCollisionControl", "CCameraCollisionControl");
  108.     SetComponentSlaveObject("CameraCollision", "Camera");
  109.   }
  110. }
  111.  
  112. class CArmedUnit
  113. {
  114.   array m_WeaponNames = array();
  115.  
  116.   void CreateStaticWeapon(
  117.       string _WeaponName,
  118.       string _WeaponClass
  119.     )
  120.   {
  121.     CreateComponent(_WeaponName, "Weapon", _WeaponClass);
  122.     SetComponentPositionable(_WeaponName, "Mesh");
  123.     m_WeaponNames.addElement(_WeaponName);
  124.   }
  125.  
  126.   void CreateAnimatedWeapon(
  127.       string _WeaponName,
  128.       string _WeaponClass,
  129.       string _AnimatorClass
  130.     )
  131.   {
  132.     CreateComponent(_WeaponName, "Weapon", _WeaponClass);
  133.     SetComponentPositionable(_WeaponName, "Mesh");
  134.     m_WeaponNames.addElement(_WeaponName);
  135.  
  136.     CreateComponent("Animator", "TargetingAnimator", _AnimatorClass);
  137.     SetComponentSlaveObject("Animator", "Mesh");
  138.     SetComponentPositionable("Animator", _WeaponName);
  139.   }
  140. }
  141.  
  142. class CUnitWithSound
  143. {
  144.   void InitializeSound(
  145.       string _SoundId
  146.     )
  147.   {
  148.     CreateComponent("Emitter", "Emitter", _SoundId);
  149.     CreateComponent("EmtLink", "ObjectEmitterLink");
  150.  
  151.     SetComponentSlaveObject("EmtLink", "Emitter");
  152.     SetComponentPositionable("EmtLink", "Mesh");
  153.   }
  154. }
  155.  
  156. class CUnitWithBehavior
  157. {
  158.   void InitializeVehicleBehavior(
  159.       string _BehaviorClass
  160.     )
  161.   {
  162.     CreateComponent("Behavior", "VehicleBehavior", _BehaviorClass);
  163.  
  164.     SetComponentSlaveObject("Behavior", "Mesh");
  165.  
  166.     for (int Index = 0; Index < m_WeaponNames.size(); Index = Index + 1)
  167.       SetComponentSlaveObject("Behavior", m_WeaponNames[Index]);
  168.   }
  169. }
  170.  
  171. class CUnitWithStateControl
  172. {
  173.   void CUnitWithStateControl(
  174.       string _Script
  175.     )
  176.   {
  177.     CreateComponent("StateControl", "UnitStateControl", _Script);
  178.     SetComponentPositionable("StateControl", "Mesh");
  179.   }
  180. }
  181.  
  182.  
  183.  
  184. class CBaseWeaponDescriptor
  185. {
  186.   int    AmmoQuantity      = -1;
  187.   float  BulletSpeed       = 600.0;
  188.   float  FireDeviation     = 0.0;
  189.   string BulletPatternId   = "";
  190.   string LinkJointName     = "";
  191.   string EffectOnFire      = "";
  192.   string FireCloudEffect   = "";
  193.   string SoundOnFire       = "";
  194.   float  TargetingRange    = -1.0;
  195.   vector GravityVector     = vector(0.0, 0.0, 0.0);
  196.  
  197.   string WeaponName        = "";
  198.   float  FireWeaponDelay   = 0.0;
  199.   bool   IsAutotargeting   = false;
  200.   int    AttachSlotNumber  = 0;
  201.  
  202.   bool   NotifyOnFire      = false;
  203. }
  204.